有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

通过控制台将java正则表达式作为输入

我需要从用户那里获取正则表达式并将其分配给一个变量。正则表达式不会在代码中硬编码。如何做到这一点。我正在使用JOption对话框,但它不起作用。还有别的办法吗

目前这是可行的

            patternToMatch =   "^ABC.*XY\\\\16$";      
            Pattern p = Pattern.compile(patternToMatch);

这不管用

            patternToMatch = JOptionPane.showInputDialog(null, "Enter Regex Term");
            Pattern p = Pattern.compile(patternToMatch);

Input = ^ABC.*XY\\\\16$ // Not Working
Input= "^ABC.*XY\\\\16$" //Not Working

编辑:对不起。不是一个物体。这是一个变量


共 (1) 个答案

  1. # 1 楼答案

    在Java中\\\的转义序列。因此,字符串literal "^ABC.*XY\\\\16$"的实际值是"^ABC.*XY\\16$"。查看JOptionPane.showMessageDialog(null, "^ABC.*XY\\\\16$");显示的内容

    引用Java语言规范3.10.6 "Escape Sequences for Character and String Literals"

    \ \     /* \u005c: backslash \ */
    

    因此,您应该在对话框中输入"^ABC.*XY\\16$",以使这个正则表达式正常工作